Doc Team Suggestions

Documentation Style

Click here for the suggestions on documentation style.

Documentation:

One-paragraph description of what is WebWork. And then, an explanation of how the documentation is divided:

If you're new to WebWork, please read the Overview and proceed to the Tutorial to get started. Experienced users can refer to the Cookbook for advanced topics. Use the Reference on an as-needed basis for more specific details. For detailed information about WebWork project, read the section Project Information. Information about many projects related to WebWork can be found in Related Projects

If you have any questions, you can ask them at the user forum/mailing list. Please be sure to read the FAQ before asking any questions.

  1. Overview
  2. Project Information
  3. FAQ
  4. Tutorial
  5. Cookbook
  6. Reference
  7. Related Projects

(details on each of the above follows)

Overview

  1. What is WebWork
  2. Comparison to Struts (Tapestry, JSF, etc.?) – current material and links to existing articles
  3. Articles and press about WebWork
  4. Projects using WebWork / Testimonials

Project Information

  1. License
  2. Deployment notes
  3. WebWork versions
    • Current release
    • Previous releases
    • Migrating from WebWork 1.x;
  4. Dependencies
  5. WebWork Team
  6. WebWork community
    • Mailing lists / Forum
    • Bug tracker
    • Wiki
    • How to contribute?

FAQ

  1. Category 1
  2. Category 2
  3. Etc.

The questions included in the FAQ should be extracted from the User Forum/Mailing List. Someone could review recent messages and find out which questions are asked the most. After that, separate the questions into categories to form the subsections.

Tutorial

  1. Downloading and installing WebWork
  2. Setting up the test environment (to test tutorial source code)
  3. Basic configuration and your first action (Hello WebWorld)
  4. Understanding actions
  5. Understanding results
  6. Meet WebWork tag library (would also explain a little bit of OGNL)
  7. Evaluating other view options: Velocity
  8. Evaluating other view options: FreeMarker
  9. Understanding interceptors
  10. Performing validation
  11. Performing dependency injection (IoC) through components
  12. Going i18n (internationalization)
  13. Retrieving data without a full request using XHR/Ajax

This should be in conformance to Patrick's example app. Vitor will talk to Patrick to get his opinions on the sequence of lessons suggested above and how to make the tutorial conformant to the example app.

Cookbook

  • Tips and tricks on Application Servers (this was in "Overview")
  • Stuff from the current Cookbook...

All the tips in the Cookbook should be revised. Some of them could belong to the tutorial instead (basic stuff). 3rd party integration tips could be separated from the rest. Also, it would be good if all of them also followed the same structure, kind of like a tutorial lesson, but on advanced topics. The differences between the Tutorial and the Cookbook would be:

  Tutorial Cookbook
User level required: Begginner Intermediate
Availability of Source code: In the documentation and in the src folder of the distribution (ready for deploy and test). Only in the documentation, and may not be complete.
Should be read in sequence? Yes. No.

A question that arised in the TOC discussion was: what's the difference between the Cookbook and the FAQ? Well, some of the items in the Cookbook are also FAQs (people ask about them a lot), so they would also be included in the FAQ, with links to the Cookbook. The FAQ should have quick answers or link to longer answers, such as the Cookbook. The Cookbook is tutorial-style, a collection of mini HOW-TOs.

Reference

  1. Introduction – This will have parts of Overview in it, rather than forwarding them to Overview altogether.
  2. Architecture
  3. Configuration
  4. Interceptors
  5. Action Chaining
  6. IOC / Dependency Injection
  7. UI Components - JSP, Velocity, Freemarker, JavaScript validation and DWR support
  8. Result Types
  9. Type Conversion
  10. Validation
  11. OGNL / Object Graph Navigation Language
  12. Internationalization
  13. 3rd Party Integration - Sitemesh, Spring, Pico, Hibernate, JUnit, Quartz, etc.

An important thing about the reference is that it should be written in book-style (or hibernate-reference-style) so a PDF version would be generated and people could print it, pass it around the office or read it while working out or relaxing in bed. Therefore, Confluence's PDF features play a big part in this. Some questions that came up during the discussions:

  • The reference could link to other pages in some situations. Links in confluence do not reference URLs, but the page's names. Does Confluence convert them to the URL before writing the PDF? If not, should the Reference not link to any pages outside it?
  • Can we select which pages are converted into PDF? If we want to convert only the Reference to PDF, can we do that? How does that work?

Related Projects

  1. WebFlow (graphical chart tool)
  2. EclipseWork (Eclipse Plugin)
  3. IDEA Plugin
  4. WebWork Optional
  5. Etc. ?